package com.simple.common.entity.dto.pay.vm;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.simple.common.entity.dto.pay.BaseDto;
import com.simple.common.entity.po.sys.Trade;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author yasud
 * @date 2020年09月29日 16:13
 * @description
 */
@Data
public class  VmBaseDto extends BaseDto implements Serializable {

    /**
     * 当前交易
     */
    private Trade trade;

    /**
     * 渠道个性参数, 这里就是请求对象的Extra字段内容
     */
    private Map<String, Object> extra;

    /**
     * 返回给定的字符串形式
     * @param key
     * @return
     */
    @JsonIgnore
    public String getAsStringFromExtra(String key) {
        return (String)getExtra().get(key);
    }

    /**
     * 返回给定key的 bigdecimal
     * @param key
     * @return
     */
    @JsonIgnore
    public BigDecimal getAsBigDecimalFromExtra(String key) {
        return (BigDecimal)getExtra().get(key);
    }

    /**
     * 返回给定int
     * @param key
     * @return
     */
    @JsonIgnore
    public Integer getAsIntFromExtra(String key) {
        return (Integer)getExtra().get(key);
    }

    /**
     * 给定列表
     * @param key
     * @return
     */
    @JsonIgnore
    public List getAsListFromExtra(String key) {
        return (List)getExtra().get(key);
    }

    /**
     * 给定 map
     * @param key
     * @return
     */
    @JsonIgnore
    public Map getAsMapFromExtra(String key) {
        return (Map)getExtra().get(key);
    }
}
